Correcting Offset Errors Associated With A Sub-ADC In Pipeline Analog To Digital Converters

ABSTRACT

An offset correction circuit examines a residue signal of a stage of a pipeline analog to digital converter (ADC) to determine whether a parameter which could cause offset error, needs to be adjusted. In an embodiment, the parameter is adjusted until a maximum range of the residue signal equals an expected range. In the described examples, the adjusted parameters include timing offset error (when components of an ADC sample the input signal at different time instances) and a voltage offset error (the threshold voltage at which a sub-ADC in a stage the generated sub-code changes to a next value).

BACKGROUND

1. Field of the Invention

The present invention relates generally to Analog to Digital Converters (ADC), and more specifically to correction of offset errors associated with a sub-ADC in analog to digital converters (ADC).

2. Related Art

Analog to Digital Converters (ADCs) are used to generate a sequence of digital codes representing the strength of an input signal at corresponding time instances. A pipeline ADC is a type of ADC which contains a sequence of (pipeline) stages, with each stage resolving a number of bits forming a sub code. The sub codes generated by various stages are used to generate a digital code corresponding to the analog input sampled by the ADC.

A sub-ADC generally refers to an ADC component (contained in a stage of a ‘ADC’ noted in the above paragraph) that generates a coarse (low-resolution) digital equivalent (sub-code noted above) of the corresponding input to the stage. Each stage (except the last stage) of a pipeline ADC generates a residue signal which is the difference of the input signal and the analog equivalent of the sub-code, the residual signal representing that portion of the input signal that needs to be resolved by subsequent stages. The residue signal represents a difference of the voltage of the input signal to the stage and the voltage level corresponding to the sub-code provided by the stage. The residue signal (in an amplified form, typically) of one stage is provided as an input signal to the next stage in the sequence.

A sub-ADC in a pipeline ADC may be associated with various errors. An offset error is generally present when an operational parameter (affecting the values of the digital codes generated) deviates in an ADC from a corresponding desired value. For example, while it may be desirable that different sub-components of a stage of a pipeline ADC sample the input signal to that stage at a same/identical time instances, the components may not sample the input signal at the same time instance.

Thus, a sub-ADC may sample an input signal at time instances which are offset (different) from the (corresponding) instances at which other components of the stage sample the same input signal. The difference of sampling instances represents a timing offset (also termed sampling mismatch) error. Similarly, it may be desirable that voltage thresholds (the voltage level at which the equivalent digital value changes to a next value) used in a flash ADC of a stage not deviate from desired values, a deviation being termed a voltage offset error.

Such offset errors generally cause corresponding errors in the output digital codes of a pipeline ADC. It is accordingly desirable that offset errors be corrected such that the digital codes accurately represent the strength of an input signal at the sampled time instance.

Several aspects of the present invention correct for offset errors associated with one or more sub-ADCs in a pipeline ADC.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be described with reference to the following accompanying drawings, which are described briefly below.

FIG. 1 is a block diagram illustrating the details of a pipeline ADC in an embodiment of the present invention.

FIG. 2 is a block diagram illustrating the internal details of a stage of a pipeline ADC in an embodiment of the present invention.

FIG. 3 is a flowchart illustrating the manner in which offset errors in a pipeline ADC are corrected in an embodiment of the present invention.

FIG. 4 is a diagram which illustrates an example of a timing offset error in a pipeline ADC.

FIGS. 5A, 5B and 5C are example diagrams used to illustrate how some residue levels may fall outside an expected range due to timing offset error.

FIG. 6 is a block diagram of a pipeline ADC in another embodiment of the present invention.

FIG. 7 is a flowchart illustrating a procedure according to which timing offset error may be corrected in an embodiment of the present invention.

FIG. 8 is a block diagram of the internal details of a flash ADC used in stage of a pipeline ADC in an embodiment of the present invention.

FIG. 9 is a flowchart illustrating a procedure according to which voltage offset error may be corrected in an embodiment of the present invention.

FIG. 10 is a block diagram of an example system/device in which the present invention may be implemented.

In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.

DETAILED DESCRIPTION

1. Overview

An aspect of the present invention corrects offset errors caused by stages of a pipeline analog to digital converter (pipeline ADC). In an embodiment, an offset correction block forms a measure characterizing the deviation of residue levels (of a stage) from an expected range of residue values. A parameter is then adjusted to minimize the deviations for subsequently received portion of the input signal. The offset errors may be corrected as a result.

In one embodiment, the offset error corresponds to a timing offset error and the parameter corresponds to a phase of a sampling clock used by the stage of the ADC.

In another embodiment, the offset error corresponds to a voltage offset error and the parameter corresponds to a threshold voltage of a flash ADC used in the stage of a pipeline ADC.

Several aspects of the invention are described below with reference to examples for illustration. It should be understood that numerous specific details, relationships, and methods are set forth to provide a full understanding of the invention. One skilled in the relevant art, however, will readily recognize that the invention can be practiced without one or more of the specific details, or with other methods, etc. In other instances, well known structures or operations are not shown in detail to avoid obscuring the features of the invention.

2. Pipeline Analog to Digital Converter (ADC)

FIG. 1 is a block diagram illustrating the details of a pipeline ADC in an embodiment of the present invention. Pipeline ADC 100 is shown containing stages 120-1 through 120-S, digital error correction block 130, offset correction block 180 and clock generation unit 190. Each block is described below in further detail.

Clock generation unit 190 provides clocks to each stage via paths 191-1 through 191-S. Each of the paths may contain multiple clock signals used as sampling clocks to sample a corresponding input signal to each stage. The clock signals determine the sampling instances in the operation of each stage, as will be clear from the description below.

Each stage 120-1 through 120-S generates a sub-code corresponding to a voltage level of an analog signal received as an input, and an amplified residue signal as an input to a (any) next stage. For example, stage 120-1 converts a voltage level on path 111 to generate a sub-code on path 123-1, and the amplified residue signal generated on path 112 is provided as an input to stage 120-2. Thus, each stage (except the last—120-S) partially resolves the input signal, and generates an unresolved residue to be resolved by a subsequent stage. Stage 120-S resolves the last amplified residue.

Digital error correction block 130 receives sub codes (123-1 through 123-S) from various stages, and generates an overall code representing the strength of the sample received on path 111. Conceptually, it may perform a weighted addition of the sub codes to generate the overall code, as is well known in the relevant arts. The generated overall code is provided on path 146.

Offset correction block 180 operates to correct offset errors in stages 120-1 through 120-S, based on the residue signals generated in various stages. A residue signal represents the unresolved portion of an input signal, as illustrated logically in an example embodiment below.

3. Residue Signal

FIG. 2 is a block diagram illustrating the internal details of a stage of a pipeline ADC in an embodiment of the present invention. Stage 120-1 of pipeline ADC 100 is shown containing flash ADC 250, digital to analog converter (DAC) 260, subtractor 270 and amplifier 280.

Flash ADC 250, operates as a sub-ADC in stage 120-1, receives a clock signal on path 255 (assumed to be contained in path 191-1), and converts a sample of an analog signal received on path 111 at an active edge of clock 255 into a corresponding sub code, which is provided on path 256 (contained in path 123-1 of FIG. 1). The sub-code is a partially resolved representation of input 111, and may contain, for example, the P most significant bits of the N-bit overall code provided on path 146.

DAC 260 converts the sub code received on path 256 into a corresponding analog signal (Vdac) on path 267. The strength of each portion of the analog signal is generally proportionate to the sub code.

Subtractor 270 receives a clock signal on path 275 (contained in path 191-1), and generates at an active edge of clock 275 a residue signal as the difference of signal 111 (Vin) and the analog signal received on path 267 (Vdac). It may thus be appreciated that the residue signal represents the unresolved portion of the input signal for the corresponding sampling time instance.

Amplifier 280 amplifies the residue signal (Vin-Vdac) received on path 278 and provides an amplified residue signal on path 112. The (amplified) residue signal on path 112, thus, represents an amplified unresolved strength of input signal 111, and may be used to resolve the remaining bits in the N bit digital code by the subsequent stages.

Subtractor 270, DAC 260, and amplifier 280 may be implemented using a capacitor network and an operational amplifier according to one of several techniques such as charge redistribution stage, flip around charge redistribution stage etc., well known in the relevant arts.

As noted above, timing offset errors and voltage offset errors associated with a sub-ADC (e.g., flash ADC 250 of stage 120-1 of FIG. 2) of pipeline ADC 100 may result in errors in the generated sub-codes and the overall digital code (path 146). Several aspects of the present invention correct for such deviations (in general termed offset errors) as described next with respect to a flowchart.

Generally, such errors cause one or more values (residue levels) of the residue signals generated by stage 120-1 to fall outside an “expected range” (described in detail below with respect to FIG. 3). In a prior technique, a subsequent stage 120-2 is designed to accept such “out-of-range” residue signals, and to correct/compensate for the errors internally (i.e., within stage 120-2).

However, such an implementation often requires additional hardware within stage 120-2 and/or is more wasteful (larger) in terms of power consumption and implementation area. Further, such a prior technique may also require the subsequent stage to be implemented to accept a very large range of residue levels outside the normal/expected range. The prior approach noted above may not be desirable at least for reasons such as cost, implementation area, power consumption etc.

Several aspects of the present invention correct for errors noted above, as described next with respect to a flowchart. The related features can also be conveniently user to overcome some of the deficiencies in the prior art approach noted above.

3. Correcting Offset Errors

FIG. 3 is a flowchart illustrating the manner in which offset errors in a pipeline ADC are corrected in an embodiment of the present invention. The flowchart is described with respect to stage 120-1 of pipeline ADC 100, and offset correction block 180 (FIG. 1), merely for illustration. However, various features can be implemented in other environments and other components. Furthermore, the steps are described in a specific sequence merely for illustration. Alternative embodiments in other environments, using other components and different sequence of steps can also be implemented without departing from the scope and spirit of several aspects of the present invention, as will be apparent to one skilled in the relevant arts by reading the disclosure provided herein. The flowchart starts in step 301, in which control passes immediately to step 320.

In step 320, stage 120-1 samples an input signal at multiple time instances to generate a first set of digital values (sub-codes in the description above). Each value in the first set is a partially resolved (generally the higher order or more significant bits of the final overall digital code) representation of the input signal. Control then passes to step 330.

In step 330, offset correction block 180 examines residue levels corresponding to stage 120-1 to characterize any deviation of the residue levels from an expected range of residue levels. Each residue level represents an unresolved strength of the input signal at the corresponding time instance, and the expected range generally represents a range of values that the residue levels would span assuming there were no offset errors. A residue level falling outside the expected range is indicative of an offset error.

The deviation can be characterized in various ways. Aspects such as magnitude of the deviations, the frequency of the deviations may be considered in characterizing the deviations (which can be represented as one or more parameters, using techniques well known in the relevant arts). Offset correction block 180 may examine the deviation (error) values of a multiple number of such residue levels (having values outside the expected range) to determine the extent of offset error, as described below with examples. Control then passes to step 340.

In step 340, offset correction block 180 adjusts a value of a parameter(s) of stage 120-1 to at least reduce the deviation (if any) of residue levels from the expected range, thereby minimizing (or reducing to zero) the offset error. Control then passes to step 320, and steps 320, 330 and 340 are repeated, in which subsequent portion of an analog signal is processed with the adjusted parameter.

Thus, it may be appreciated that offset correction block 180 may adjust the parameter(s) continuously/repeatedly to maintain the offset error at a zero or minimum value.

The manner in which an example embodiment of offset correction block 180 corrects the offset error is described in detail below. First, a description of some example offset errors in a pipeline ADC is provided.

4. Timing Offset Error

FIG. 4 is a diagram which illustrates an example of a timing offset error in a pipeline ADC. Waveform 111 is assumed to be an input signal present on path 111 of ADC 100 of FIGS. 1 and 2). Clock 256 represents a clock provided to flash ADC 250, while clock 275 is a clock provided to subtractor 270. Both clocks 256 and 275 may be derived from a master clock (not shown), and are assumed to be contained in path 191-1.

In FIG. 4, the active edges of clocks 256 and 275 (time instances at which flash ADC 250 and subtractor sample input signal 111) are shown occurring at time instances t1 and t2 respectively. Thus, instead of sampling the same value of the input signal 111 (as ideally desirable), flash ADC 250 and subtractor 270 sample different values v1 and v2, and may cause a resulting digital code to be erroneous. The difference between time instances t1 and t2 represents a timing offset error.

In other scenarios, a timing offset error may exist even if active edges of clocks 256 and 275 are synchronous (occur at the same instants), but the internal paths (in flash ADC 250 and subtractor 270) traveled by signal 111 may be different (longer in one than the other). Various other causes for such errors are also possible, but not described here.

In general, a timing offset error may be deemed to exist if the signal value corresponding to a sampling instant of input signal 111 sampled by flash ADC 250 and subtractor 270 are different. Similar timing offset errors may also exist in other stages of pipeline ADC 100.

A timing offset error may cause at least some residue levels generated by a stage to have values falling outside an ‘expected range’. Offset correction block 180 may therefore examine the values of residue levels (residue signals) to determine whether a timing offset error is present or not. An example scenario to illustrate how at least some residue levels may fall outside an expected range due to a timing offset error is described next.

5. Residue Levels Outside an Expected Range

FIGS. 5A, 5B and 5C are example diagrams used to illustrate how at least some residue levels may fall outside an expected range due to timing offset error. For convenience, the diagrams are used in conjunction with FIG. 2 in the following illustration. Merely for the sake of simplicity, it is assumed in the following description that flash ADC 250 provides a single bit representation of input signal 111 (Vin).

It is also assumed that the switching threshold for the single bit output is 0.5V (volts) such that the output of flash ADC 250 is a digital 0 when input Vin is less than 0.5V, and a digital 1 when input Vin is greater than or equal to 0.5 V. The output of DAC 260 is assumed to be 0V for an input of digital 0, and an output of 1V for an input of digital 1. The gain of amplifier 280 is assumed to be two.

FIG. 5A shows amplitudes of an example input signal (on path 111, assumed to be a ramp signal for simplicity) plotted against time.

FIG. 5B is a plot of input signal (111) magnitude (on X axis) versus output (on path 112 of FIG. 2) residue level (on Y axis), when the active (sampling) edges of clock 255 provided to flash ADC 250 and clock 275 provided to subtractor 270 occur at the same time instance, i.e. there is no timing offset error.

To illustrate, at a time instance when input 111 has a value 0.25V, output of flash ADC 250 is 0 and consequently signal on path 267 is 0V. Since both flash ADC 250 and subtractor 270 sample input 111 at the same time instance input to subtractor 270 also has a value of 0.25V. Thus, the signal on path 278 has a value 0.25V, and residue voltage on path 512 is 0.5V (due to the gain of 2 in amplifier 280), as shown in FIG. 5B.

As Vin approaches 0.5V, Vr approaches +1V. When Vin is 0.5V, output of flash ADC 250 is a digital 1, signal on path 267 is 1V, and signal on path 278 is −0.5V, with Vr (512) being −1V. As may be readily verified, the maximum range over which residue signal Vr varies for an input signal range of 0 to 1V is −1V to +1V (the expected range).

FIG. 5C is a plot of input signal (111) magnitude (on X axis) versus output (on path 112 of FIG. 2) residue level (on Y axis), when the active (sampling) edges of clock 255 provided to flash ADC 250 and clock 275 provided to subtractor 270 (or in general, to the circuitry (generally termed MDAC-multiplying digital to analog converter) implementing the circuit blocks DAC 260, subtractor 270 and amplifier 280) are not synchronous, i.e. there is a finite timing offset error. It is assumed that the sampling instance of subtractor 270 occurs slightly later (at time instance t4 in FIG. 5A) than the sampling instance (t3 in FIG. 5A) of flash ADC 250 such that value of input signal (ramp shown in FIG. 7A) sampled by subtractor 270 is 0.1V greater than the value sampled by flash ADC 250.

To illustrate, at a time instance when input 111 has a value 0.25V, output of flash ADC 250 is 0 and consequently signal on path 267 is 0V. Since subtractor 270 samples input 111 at a slightly later time instance such that the sampled value is 0.1V higher (i.e., 0.35V) the signal on path 278 has a value 0.35V, and residue voltage on path 112 is 0.7V (due to the gain of 2 in amplifier 680), as shown in FIG. 5B.

As Vin approaches 0.5V, Vr approaches +1.2V. When Vin is 0.5V, output of flash ADC 250 is a digital 1, signal on path 267 is 1V, and signal on path 678 is −0.4V, with Vr (112) being −0.8V. As may be readily verified, the maximum range over which residue signal Vr varies for an input signal range of 0 to 1V is −0.8V to +1.2V.

It may be observed from FIG. 5C that when a timing offset is present (non-zero value), some residue signals may have values outside the expected range o+1V to −1V. In general, the maximum range over which the residue signal Vr varies is different from the expected range, and may be larger. The extent of deviation (in both positive and negative values) may depend on the value of timing offset error (extent by which time instance t2 of FIG. 4 is earlier or later than t1). With respect to the example described above the residue values may vary between +1.2V and −1.2V (as against +1V and −1V when there is no timing offset).

The example scenario described above with respect to FIGS. 5A-5C assumed that Flash ADC 250 provides a single-bit output. In the general scenario in which Flash ADC 250 provides multiple-bit outputs, there may be a timing mismatch between sampling instants of each comparator used within Flash ADC 250 and the corresponding MDAC. Several aspects of the present invention operate to correct error even in such a general scenario, as will be clear on reading the disclosure herein.

According to an aspect of the present invention, offset correction block 180 examines the residue values to determine if any of the residue values are outside the expected range. The manner in which offset correction block 180 performs correction for the offset error based on the ‘out-of-expected-range’ residue value(s) in one embodiment of the present invention is described below.

In general, offset correction block 180 characterizes any deviations of the residue levels outside of an expected range of residue levels. One possible characterization is a determination by offset correction block 180 of a maximum range over which the residue signal varies. Offset correction block 180 may then, based on a deviation of the maximum range from the expected range, adjust one or more parameters causing the offset error (phase of clock 256 or clock 275 in the above example) to reduce the error (i.e., to bring the maximum range of a set of successive samples to at least substantially equal the expected range).

It may also be noted from the description above that sub-components of a stage may have to be designed to accommodate a wider range of the signals (input and/or output) handled by the sub-components. For example, amplifier 280 of stage 120-1 may have to amplify a wider range of input signals. Similarly, since the range of residue levels of stage 120-1 may be larger than when there is no offset error, flash ADC, DAC, subtractor and amplifier of stage 120-2 may also need to handle/process a correspondingly wider range of signals.

However, in contrast to the prior technique noted above, flash ADC, DAC, subtractor and amplifier of stage 120-2 need be designed/implemented to accommodate a wider range (wider than the expected range) wide enough so that offset correction block 180 can detect that one or more residue levels of stage 120-1 has gone out of the expected range. This may be appreciated from the description of the flowchart of FIG. 3, according to which closed loop feedback is employed for correcting the errors.

Accordingly, the description is continued with an illustration a pipeline ADC in an embodiment of the present invention, illustrating also the details of an offset correction block used therein.

6. Embodiment

FIG. 6 is a block diagram of a pipeline ADC in another embodiment of the present invention. Pipeline ADC 600 is shown containing stages 620-1 through 620-S, digital error correction block 630, offset correction block 180 and clock generation unit 690. Each block is described below in further detail.

Clock generation unit 690 and digital error correction block 630 operate similar to clock generation unit 190 and digital error correction block 130 of FIG. 1, and their description is not repeated here in the interest of conciseness.

Stages 620-1 through 620-S also operate similar to stages 120-1 through 120-S of FIG. 1, except that the constituent sub-components (similar operationally to flash ADC 250, DAC 260, subtractor 270 and amplifier 280 shown in FIG. 2) may be designed to handle wider signal ranges to facilitate detection of the errors in the residue levels, as noted above.

For example, assuming that the offset errors in stage 620-1 are sought to be corrected and each of stages 620-1 and 620-2 is implemented using the components of FIG. 2, subtractor 270 and amplifier 280 would need to be implemented to provide the wider range of signal depicted in FIG. 5C. Similarly, flash ADC 250 of stage 620-2 would need to provide digital values representing the wider range of FIG. 5C.

Thus, stage 620-2 may be implemented with more bits than the sub-code sought to be generated using the stage, or appropriate external processing to scale the digital values back to the range of FIG. 5B may be employed, as will be apparent to one skilled in the relevant arts. For the remaining description it is assumed that the sub-codes generated by stage 620-2 reflect the specific strength of the signal 612, within the range (−1.2V to +1.2V) as illustrated with respect to FIG. 5C.

Offset correction block 180 is shown containing offset measurement block 650 and parameter adjustment block 680.

Offset measurement block 650 receives the sub-codes from each of the stages 620-1 through 620-S via corresponding paths 623-1 through 623-S, and determines if any of the values are outside an expected range. The expected range may be determined a priori based on implementation details of the corresponding stage, as noted above with respect to FIG. 5B. It may be noted that the sub-code generated in a stage (except the first stage 620-1) corresponds to the residue of an immediately previous stage. Though the digital code generated by only a single subsequent stage is described as being used in determining the maximum range, it should be appreciated that the sub-codes of multiple subsequent stages together can be examined if more precision is desired.

Thus, in the illustrative example, offset measurement block 650 may examine the sub-codes (corresponding to the range of FIG. 5C) received from stage 620-2 on path 623-2. Offset measurement block 650 processes the error information (extent by which residue values exceed the upper or lower limit of the expected range) and provides a corresponding correction/adjustment value on path 658 to parameter adjustment block 680. Offset measurement block 650 may also examine sub-codes from other stages and provide corresponding correction/adjustment information to parameter adjustment block 680 via path 658.

Parameter adjustment block 680 receives the adjustment information corresponding to one or more stages on path 558, and generates corresponding signals 689 (provided to clock generation block 690 to adjust one or more clock phases to correct for timing offset error), and 685 to correct for other sources of offset errors described in greater detail below.

It must be understood that although the embodiment of FIG. 6 is shown as not having a sample and hold amplifier (SHA), various aspects of the present invention are applicable and operational even when a SHA is present. In such embodiments, a SHA samples input signal 611, and provides the sampled signal to stage 620-1.

Thus, both the flash ADC and MDAC contained within stage 620-1 receive a sample of input signal 611 from the SHA (not shown). In alternative embodiments, only the MDAC receives the output (sample) of the SHA, while the flash ADC receives the input signal 611 directly (without being sampled by the SHA). In yet another embodiment, two SHAs may be used, with one SHA providing a sample of the input signal to the flash ADC and the other SHA providing a sample of the input signal to the MDAC.

A procedure/algorithm used by offset measurement block 650 and parameter adjustment block 690 to correct for timing offset error in an embodiment of the present invention is briefly described next.

7. Example Correction Procedure

FIG. 7 is a flowchart illustrating the manner in which offset measurement block 650 and parameter adjustment block 690 correct for timing offset error in an embodiment of the present invention. The steps are described in a specific sequence and with respect to correction for stage 620-1, merely for illustration. Different sequence of steps can also be implemented without departing from the scope and spirit of several aspects of the present invention, as will be apparent to one skilled in the relevant arts by reading the disclosure provided herein. The flowchart starts in step 701, in which control passes immediately to step 710.

In step 710, offset measurement block 650 collects multiple residue values generated by stage 620-1 by storing sub-codes generated by the sub-ADC of the subsequent stage (Flash ADC of stage 620-2). Offset measurement block 650 may collect the sub-codes corresponding to several cycles (e.g., 1000). Control then passes to step 720.

In step 720, offset measurement block 650 adds the errors in the collected residue values. The error for each sample is a magnitude (absolute value, disregarding the sign) by which a residue value is outside an expected range. For example, if the expected range is +1V to −1V, and a sub-code corresponds to a value of +1.1V, the error is 0.1V. It may be noted that typically, only a small fraction of the multiple number of residue levels may have values outside the expected range. Control then passes to step 730.

In step 730, offset measurement block 650 determines if the current sum of errors (computed in a current iteration of step 720) is equal to zero. If the current sum is zero, the residue values all lie within the expected range, and control then passes to step 710, in which offset measurement block 650 collects another set of residue values (sub-codes) to continue monitoring for possible offset error. If the current sum is not zero, control passes to step 740.

In step 740, offset measurement block 650 determines if the current sum of errors is less than or equal to an immediately previous sum. Offset measurement block 650 provides such information to parameter adjustment block 690. If the current sum is less than or equal to the previous sum control passes to step 750, else control passes to step 760.

In step 750, parameter adjustment block 690 shifts the phase of one of the internal clocks of stage 620-1 (similar to clocks 255/275 in the embodiment of FIG. 2, but referred for ease of description below by the same numbers) in the same sense (advance or retard) as in a previous iteration. It must is noted here, that in a first iteration of the steps described here, it may not be possible to determine the direction (retard/advance) in which the phase of the clock has to changed based on the difference between the current sum and the previous sum (not available in the first iteration), and parameter adjustment block 690 may either retard or advance the phase. Control then passes to step 710, in which offset measurement block 650 collects another set of sub-codes, and the appropriate subsequent steps are repeated.

In step 760, parameter adjustment block 690 shifts the phase of the internal clock in the opposite sense as in a previous iteration. Control then passes to step 710, in which offset measurement block 650 collects another set of sub-codes, and the appropriate subsequent steps are repeated. The current sum now equals the previous sum for that subsequent iteration.

It may be appreciated that a timing offset error may be dynamic, i.e., the offset error may change over an operating period of pipeline ADC 600, and offset measurement block 650/parameter adjustment block 690 may perform the operations above continuously/repeatedly to constantly minimize the offset error or reduce the offset error to zero.

It has been assumed in above description that all comparators of the sub-ADC have the same sampling time mismatch with respect to the MDAC sampling instant. In general, each of the comparators can have different sampling instants, and each of the timing mismatches may be corrected in a manner similar to that described above.

Further, as noted above, the components of a stage need be designed/implemented to accommodate wider signal ranges only wide enough to enable offset correction block 180 to detect that residue values are outside the expected range.

Another instance of an offset error in a pipeline ADC occurs when voltage thresholds in a flash ADC (such as flash ADC 650 of FIG. 6) used in the pipeline ADC are different from set (‘ideal’) values, as described next.

8. Voltage Offset Error

FIG. 8 is a block diagram of the internal details of a flash ADC used in a pipeline ADC in an embodiment of the present invention. Flash ADC 650 is shown containing resistors 810, 820, 830 and 840, comparators 850, 860, 870 and digital potentiometer 880.

As is well known in the relevant arts, comparators 850, 860 and 870 provide a comparison output (respective paths 855, 865 and 875) of input 890 against respective threshold voltages at nodes 812, 823 and 834. Outputs 855, 865 and 875 may be further processed in an encoding logic (not shown) to provide the output sub-codes (path 256 in FIG. 2). Offset correction block 180 may adjust the threshold voltage at node 834 via path 685 to correct for a voltage offset error as described below. Voltages at nodes 812 and 823 may also be adjusted in a similar fashion, by corresponding circuitry not shown.

As noted, threshold voltages may differ from set values. For example, assuming the circuit of FIG. 8 operates from a 4 volt supply (marked Vcc in the Figure), the magnitudes of resistors 810, 820, 830 and 840 may be selected to provide threshold voltages of 1V, 2V and 3V respectively at nodes 834, 823 and 812.

Though only the comparator 870 is shown with variable resistor input (due to operation of 880), other input resistors also may be provided with a variable value to facilitate voltage offset correction according to an aspect of the present invention.

Due to variations in process, temperature etc, the threshold voltages may be different from the desired values. In other scenarios, the comparators may have errors internally causing switching to occur at voltages other than ‘ideal’ levels.

In effect, errors mechanisms including those noted above cause voltage thresholds at which a flash ADC in a stage of a pipeline ADC switches from output sub-code to a different one, and the errors are collectively termed voltage offset errors. Voltage offset errors in a stage of a pipeline ADC also cause errors in the overall codes of a pipeline ADC.

Voltage offset errors in a flash ADC of a pipeline ADC also cause at least some residue levels to fall outside an expected range. According to an aspect of the present invention, offset correction block 180 checks for residue values outside an expected range and operates to correct for the voltage offset error, as described next with respect to a correction procedure in one embodiment of the present invention.

9. Correcting Voltage Offset Error

FIG. 9 is a flowchart illustrating the manner in which offset measurement block 650 and parameter adjustment block 690 correct for voltage offset error in an embodiment of the present invention. The steps are described in a specific sequence and with respect to correction for stage 620-1, merely for illustration. Different sequence of steps can also be implemented without departing from the scope and spirit of several aspects of the present invention, as will be apparent to one skilled in the relevant arts by reading the disclosure provided herein. The flowchart starts in step 901, in which control passes immediately to step 910.

In step 910, offset measurement block 650 collects residue values lying outside an expected range (i.e., residue values having an error). Control then passes to step 920.

In step 920, offset measurement block 650 determines the comparator (or node) corresponding to each residue value (with error) collected in step 910. In an embodiment, offset measurement block 650 makes such a determination by examining sub-codes received from both stage 620-1 as well as 620-2.

In general, the specific one of the comparator/resistor forming the basis for the sub-code generation is determined to be the comparator/resistor pair causing the voltage offset error. For example, assuming a digital sub code of 2 in the operation of the circuit of FIG. 8, both comparators 870 and 860 would generate a value of 1 and comparator 850 would generate value of 0. Thus, one of comparators 860 or 850 is deemed to be the comparator causing the voltage offset. Sub-code from next sub-stage may be analyzed to determine whether comparator 850 or 860 is in error. Control then passes to step 930.

It should be appreciated that steps 930, 940, 950 and 960 are repeated for each of the resistors 810, 820, 830 and 840.

In step 930, offset measurement block 650 checks if the errors collected in step 910 are equal to zero (i.e., no residue values with errors were collected) for the corresponding resistor/comparator pair. If no residue values have errors, this indicates that there is no voltage offset error for that resistor/comparator pair, and control then passes to step 910, and operations of the corresponding steps are again performed. It may however be noted that voltage offset error is typically a static error, which may need correction only once.

In step 940, offset measurement block 650 checks whether the number of errors is greater than a predefined threshold for the corresponding resistor/comparator pair. The predefined error threshold may be set to a non-zero value to account for noise effects. For example, if the residue is within the expected range but has a value lying very close to the edge/boundary of the expected range, noise may cause the residue value to cross the expected range, which would in turn cause a correction to be applied, which may not be desirable. If the number of errors is greater than the predefined threshold, control passes to step 950, otherwise control passes to step 960.

In step 950, parameter adjustment block 690 increases the threshold voltage at the corresponding node. For example, if in step 920, the node corresponding to the error was determined to be node 834, parameter adjustment block 690 may increase the threshold voltage (which is the parameter of interest) at node 834 via potentiometer 880 (controlled via path 685). Control then passes to step 910, and the steps may be repeated.

In step 960, parameter adjustment block 690 decreases the threshold voltage at the corresponding node. For example, if in step 920, the node corresponding to the error was determined to be node 834, parameter adjustment block 690 may decrease the threshold voltage at node 834 via potentiometer 880 (controlled via path 685). Control then passes to step 910, and the steps may be repeated.

Thus, a pipeline ADC implemented according to several aspects of the present invention may correct for offset errors, by examining residue levels, and adjusting one or more parameters causing the errors. It may be noted that multiple types of offset errors (e.g., both timing and voltage offset errors) may be present at the same time. In such scenarios offset correction block 180 may attempt to correct for the offsets in an iterative fashion, correcting for errors of one type (e.g., timing offset) till the error is minimized to some level, then proceed to correct for errors of other type. Alternatively, correction for both timing as well as voltage threshold offset errors may be applied concurrently.

A pipeline ADC implemented according to techniques described above may be incorporated in a system or a device, as described next.

10. System/Device

FIG. 10 is a block diagram of receiver system 1000 illustrating an example system in which the present invention may be implemented. Receiver system 1000, which may correspond to, for example, a mobile phone is shown containing antenna 1010, analog processor 1020, ADC 600, and processing unit 1090. Each component is described in further detail below.

Antenna 1010 may receive various signals transmitted over a wireless medium. The received signals may be provided to analog processor 1020 on path 1012 for further processing. Analog processor 1020 may perform tasks such as amplification (or attenuation as desired), filtering, frequency conversion, etc., on received signals and provides the resulting signal on path 611.

ADC 600 converts the analog signal received on path 610 to corresponding digital codes. ADC 600 is a pipeline ADC implemented in a manner described above, and may correct for offset errors as described above. ADC 600 provides the digital codes to processing unit 1090 on path 646 for further processing. Processing unit 1090 receives the recovered data to provide various user applications (such as telephone calls, data applications).

11. Conclusion

While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the present invention should not be limited by any of the above-described embodiments, but should be defined only in accordance with the following claims and their equivalents. 

1. A method of correcting an offset error caused by a stage of a pipeline analog to digital converter (pipeline ADC), said method comprising: sampling an input signal at a plurality of time instances using said stage to generate a first plurality of digital values; examining a plurality of residue levels to characterize any deviation of said plurality of residue levels from an expected range of residue levels, wherein each residue level representing an unresolved strength of said input signal at the corresponding one of said plurality of time instances; and adjusting a value of a parameter of said stage to at least reduce deviation of said plurality of residue levels from said expected range, wherein deviation of said parameter from an ideal value causes at least some of said plurality of residue levels to lie outside of said expected range.
 2. The method of claim 1, further comprising: forming a second plurality of digital values, wherein each of said second plurality of intermediate digital values represents said residue level at said corresponding one of said plurality of time instances, wherein said determining examines said second plurality of digital values to determine said deviation.
 3. The method of claim 2, wherein said second plurality of digital values are generated by a subsequent stage of said pipeline ADC, wherein said subsequent stage receives an amplified signal of said residue levels and samples said amplified signal to generate said second plurality of digital values.
 4. The method of claim 3, further comprising: subtracting a strength represented by said first plurality of digital values from said input signal at a second plurality of time instances to form the residue level, wherein said offset error represents a respective time difference of said first plurality of time instances and said second plurality of time instance; and wherein said parameter comprises a phase of a clock signal and said adjusting adjusts said phase to cause said offset error to be reduced.
 5. The method of claim 4, wherein said input signal is sampled without using a sample and hold amplifier.
 6. The method of claim 3, wherein said offset error comprises a voltage offset error representing a deviation from an expected switching threshold of a component generating said first plurality of digital values, wherein said parameter comprises a voltage at an internal node in said component.
 7. The method of claim 6, wherein said component is a flash ADC contained in said pipeline ADC.
 8. The method of claim 1, wherein said examining comprises: adding a magnitude of each deviation a first set of subcodes for a present portion of said input signal to form a first sum; adjusting said parameter based on said first sum; adding a magnitude of each deviation a second set of subcodes for a subsequent portion of said input signal to form a second sum; reversing said adjustment at least partially if said second sum is greater than said first sum.
 9. The method of claim 1, wherein said examining characterizes deviations from said expected range of one or more of said plurality of residue levels to generate a maximum range, said maximum range being a difference of a maximum value and a minimum value of said residue levels, wherein said maximum range is different from said expected range, and wherein said adjusting adjusts said value of said parameter of said stage to cause said maximum range to at least substantially equal said expected range.
 10. A pipeline analog to digital converter (ADC) comprising: a stage to sample an input signal at a plurality of time instances using said stage to generate a first plurality of digital values; and an offset correction block to examine a plurality of residue levels to characterize any deviation of said plurality of residue levels from an expected range of residue levels, wherein each residue level representing an unresolved strength of said input signal at the corresponding one of said plurality of time instances, said offset correction block adjusting a value of a parameter of said stage to at least reduce deviation of said plurality of residue levels from said expected range, wherein deviation of said parameter from an ideal value causes at least some of said plurality of residue levels to lie outside of said expected range.
 11. The pipeline ADC of claim 10, wherein said stage generates an amplified residue signal, said pipeline ADC further comprises: a subsequent stage forming a second plurality of digital values by sampling said amplified residue signal, wherein said offset correction block is designed to examine said second plurality of digital values to determine said deviation.
 12. The pipeline ADC of claim 11, wherein said stage is designed to provide more levels of said amplified residue signal than those represented by a number of bits forming a sub-code generated by said subsequent stage.
 13. The pipeline ADC of claim 12, further comprising: a subtractor block to subtract a strength represented by said first plurality of digital values from said input signal at a second plurality of time instances to form the residue level, wherein said offset error represents a respective time difference of said first plurality of time instances and said second plurality of time instances; and wherein said parameter comprises a phase of a clock signal and said adjusting adjusts said phase to cause said offset error to be reduced.
 14. The pipeline ADC of claim 10, wherein said input signal is sampled without using a sample and hold amplifier.
 15. The pipeline ADC of claim 12, wherein said offset error comprises a voltage offset error representing a deviation from an expected switching threshold of a component generating said first plurality of digital values, wherein said parameter comprises a voltage at an internal node in said component.
 16. The pipeline ADC of claim 10, wherein said offset correction circuit adds a magnitude of each deviation of a first set of subcodes for a present portion of said input signal to form a first sum, adjusts said parameter based on said first sum, adds a magnitude of each deviation a second set of subcodes for a subsequent portion of said input signal to form a second sum, and reverses said adjustment at least partially if said second sum is greater than said first sum.
 17. The pipeline ADC of claim 15, wherein said component is a flash ADC contained in said pipeline ADC and wherein said offset correction block characterizes deviations from said expected range of one or more of said plurality of residue levels to generate a maximum range, said maximum range being a difference of a maximum value and a minimum value of said residue levels, wherein said maximum range is different from said expected range, and wherein said offset correction block adjusts said value of said parameter of said stage to cause said maximum range to substantially equal said expected range.
 18. An article of manufacture for correcting an offset error caused by a stage of a pipeline analog to digital converter (pipeline ADC), said article comprising: means for sampling an input signal at a plurality of time instances using said stage to generate a first plurality of digital values; means for examining a plurality of residue levels to characterize any deviation of said plurality of residue levels from an expected range of residue levels, wherein each residue level representing an unresolved strength of said input signal at the corresponding one of said plurality of time instances; and means for adjusting a value of a parameter of said stage to at least reduce deviation of said plurality of residue levels from said expected range, wherein deviation of said parameter from an ideal value causes at least some of said plurality of residue levels to lie outside of said expected range.
 19. A device comprising: a processor processing a plurality of digital values; and a pipeline analog to digital converter (ADC) sampling an input signal and generating said plurality of digital values, said pipeline ADC comprising: a stage to sample said input signal at a plurality of time instances to generate a first plurality of digital values; and an offset correction block to examine a plurality of residue levels to characterize any deviation of said plurality of residue levels from an expected range of residue levels, wherein each residue level representing an unresolved strength of said input signal at the corresponding one of said plurality of time instances, said offset correction block adjusting a value of a parameter of said stage to at least reduce deviation of said plurality of residue levels from said expected range, wherein deviation of said parameter from an ideal value causes at least some of said plurality of residue levels to lie outside of said expected range.
 20. The device of claim 19, wherein said stage generates an amplified residue signal, said pipeline ADC further comprises: a subsequent stage forming a second plurality of digital values by sampling said amplified residue signal, wherein said offset correction block is designed to examine said second plurality of digital values to determine said deviation. 